-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Clean up illink compat suppressions by making internal types non-public #123048
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: jtschuster <[email protected]>
Co-authored-by: jtschuster <[email protected]>
Co-authored-by: jtschuster <[email protected]>
|
@copilot Fix the build break: src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TrimmingDriver.cs(10,25): error CS0060: (NETCORE_ENGINEERING_TELEMETRY=Build) Inconsistent accessibility: base class 'Driver' is less accessible than class 'TrimmingDriver.TestDriver' |
Co-authored-by: jtschuster <[email protected]>
Fixed in commit 5354a36. The |
|
@copilot fix the failures in the build src/tools/illink/test/ILLink.Tasks.Tests/Mock.cs: error CS0122: (NETCORE_ENGINEERING_TELEMETRY=Build) 'RootAssemblyInput' is inaccessible due to its protection level |
…pBase to public to fix test build Co-authored-by: jtschuster <[email protected]>
Fixed in commit aa12fff. The |
Description
Removed ~35 API compatibility suppressions from ILLink by making internal implementation types non-public. Many types were unnecessarily public despite not being exposed in the reference assembly.
Changed visibility to
internalfor:AssemblyDefinitionExtensions,BannedApiExtensions,CustomAttributeArgumentExtensions,MemberReferenceExtensions,MethodDefinitionExtensions,MethodReferenceExtensions,TypeDefinitionExtensionsBCL,ConsoleLogger,TargetRuntimeVersion,FeatureSettings,InternalErrorException,LinkerFatalErrorExceptionAddBypassNGenStep,BodySubstituterStep,CheckSuppressionsDispatcher,CheckSuppressionsStep,CleanStep,CodeRewriterStep,DiscoverOperatorsHandler,DiscoverSerializationHandler,LinkAttributesStep,MarkExportedTypesTarget,OutputStep,OutputWarningSuppressions,ProcessReferencesStep,ProcessWarningsStep,ReflectionBlockedStep,RegenerateGuidStep,RemoveResourcesStep,RemoveSecurity,SealerStep,SweepStep,UnreachableBlocksOptimizer,ValidateVirtualMethodAnnotationsStepTypes remain public when:
LinkContext,AnnotationStore,MessageOrigin,MessageContainer, base step interfaces)AttributeInfo,AssemblyResolver,EmbeddedXmlInfo,ProcessLinkerXmlBase, parser types)Driver,RootAssemblyInput,ResolveFromXmlStep,ProcessLinkerXmlStepBase)Customer Impact
None. Internal API cleanup only.
Regression
No - cleanup of existing suppressions.
Testing
Build verification of illink tools and test projects.
Risk
Low - purely visibility changes to internal implementation types not exposed in ref assembly.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.